package cn.sfrog.project.biz.admin.mapper;

import cn.sfrog.project.biz.admin.domain.BizServiceOrder;
import cn.sfrog.project.biz.admin.domain.vo.BizServiceOrderQueryVO;
import cn.sfrog.project.biz.admin.domain.vo.BizServiceOrderVO;
import cn.sfrog.project.biz.web.vo.order.AppServiceOrderQueryVO;
import cn.sfrog.project.biz.web.vo.order.AppServiceOrderResultVO;
import cn.sfrog.project.biz.web.vo.order.AppServiceOrderVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

/**
 * 服务订单Mapper接口
 */
public interface BizServiceOrderMapper extends BaseMapper<BizServiceOrder> {
    /**
     * 查询服务订单
     *
     * @param id 服务订单主键
     * @return 服务订单
     */
    BizServiceOrderVO selectBizServiceOrderById(Long id);

    /**
     * 查询服务订单列表
     *
     * @param query 服务订单
     * @return 服务订单集合
     */
    List<BizServiceOrderVO> selectBizServiceOrderList(BizServiceOrderQueryVO query);

    /**
     * 查询服务订单列表
     * @param queryVO
     * @return
     */
    List<BizServiceOrderVO> selectBizServiceOrderDispatchList(BizServiceOrderQueryVO queryVO);

    /**
     * APP-查询订单列表
     * @param query
     * @return
     */
    List<AppServiceOrderResultVO> selectAppServiceOrderList(AppServiceOrderQueryVO query);

    /**
     * 更新订单状态
     * @param updateOrder
     * @return
     */
    Integer changeOrderStatus(BizServiceOrder updateOrder);

    /**
     * 定时任务-更新订单状态
     * @param updateOrder
     */
    Integer updateServiceOrderAcceptStatus(BizServiceOrder updateOrder);


    AppServiceOrderVO getServiceOrderByOrderNum(@Param("orderNum") String orderNum);

    void updateServiceOrderByOrderNum(@Param("orderNum") HashMap orderNum);
}
